package tt.dz.egobus.servicemanager.business.point;

import java.io.Serializable;

/**
 * @author Anson
 * @date 17-3-24
 * @name 经纬度
 * @since 1.0.2
 */
public interface Point extends Serializable {

    /**
     * @author Anson
     * @date 17-3-24
     * @name 经度
     * @since 1.0.2
     */
    double x();

    /**
     * @author Anson
     * @date 17-3-24
     * @name 纬度
     * @since 1.0.2
     */
    double y();

    /**
     * @param point 当前位置的距离
     * @author Anson
     * @date 17-3-24
     * @name 计算当前位置的实际距离(单位:m)
     * @since 1.0.2
     */
    double distance(Point point);

    /**
     * @param point 当前位置的距离
     * @author Anson
     * @date 17-3-24
     * @name 计算坐标距离
     * @since 1.0.2
     */
    double distancePoint(Point point);

    /**
     * @param x 当前坐标x经度
     * @param y 当前坐标y纬度
     * @author Anson
     * @date 17-3-24
     * @name 计算当前位置的实际距离(单位:m)
     * @since 1.0.2
     */
    double distance(double x, double y);

    /**
     * @param x 当前坐标x经度
     * @param y 当前坐标y纬度
     * @author Anson
     * @date 17-3-24
     * @name 计算坐标距离
     * @since 1.0.2
     */
    double distancePoint(double x, double y);
}
